package com.miracle.java2110.service;


import com.miracle.java2110.common.PageVo;
import com.miracle.java2110.common.R;
import com.miracle.java2110.pojo.RoomManager;
import com.miracle.java2110.vo.BarPo;
import com.miracle.java2110.vo.BarVo;

import java.util.List;
import java.util.Map;

public interface RoomService {
    /**
     * 根据layui前台页面请求的参数，进行查询反馈分页所需数据
     *
     * @param map 存放layui前台页面请求的参数的Map双边队列
     * @return 返回值是一个PageVo类型的数据，存有前台页面所需的所有参数
     */
    PageVo<RoomManager> pageData(Map<String, Object> map);

    /**
     * 根据前台页面进行添加操作传递来的参数，进行添加操作
     * @param roomManager
     * @return
     */
    R add(RoomManager roomManager);

    /**
     * 根据前台传递的数据，进行批量删除的操作
     *
     * @param list 数据类型为List集合，存储前台请求所传递的参数
     * @return 返回值是一个实体类R类型,用于进行判断操作是否成功的操作
     */
    R multiDelete(List<RoomManager> list);

    /**
     * 根据前台页面传递的请求参数，进行修改操作
     *
     * @param roomManager 数据类型为实体类RoomManager类型，用于存放前台页面传递的请求参数
     * @return 返回值是一个实体类R类型,用于判断进行操作是否成功的操作
     */
    R edit(RoomManager roomManager);

    /**
     * 根据前台页面请求参数id，进行删除操作
     *
     * @param id 数据类型为Integer类型
     * @return  返回值是一个实体类R类型,用于判断进行操作是否成功的操作
     */
    R delete(Integer id);

    /**
     * 按照前台页面echars柱状图需要的数据格式，进行数据查询，返回值封装为前台所需要的数据格式
     *
     * @return 返回值是与前台echars柱形图所需要的数据格式一致的BarPo实体类
     */
    BarPo selectHistogram();

    /**
     * 按照前台页面echars饼图需要的数据格式，进行数据查询，返回值封装为前台所需要的数据格式
     *
     * @return 返回值是与前台echars饼图所需要的数据格式一致的List<BarVo>集合
     */
    List<BarVo> selectPie();
}
